import { resolve } from 'path'
import i18n from '../../i18n'
/**
 *筛选出可供搜素的路由对象
 * @param routes 路由表
 * @param basePath 基础路径,默认为 /
 * @param prefixTitle
 */
export const generateRoutes = (
  routes: any,
  basePath = '/',
  prefixTitle = []
): any[] => {
  // 创建 reslut 数据
  let res: any[] = []
  for (const route of routes) {
    // 创建包含path 和title 的 item
    const data = {
      path: resolve(basePath, route.path),
      title: [...prefixTitle]
    }
    // 当前存在meta时,使用i8n 进行国际化解析,组合成新的 title
    // 动态路由是不允许被检索
    const re = /.*\/:.*/
    if (route.meta && route.meta.title && !re.exec(route.path)) {
      const i18nTitle = i18n.global.t(`msg.route.${route.meta.title}`)
      // @ts-ignore
      data.title = [...data.title, i18nTitle]
      res.push(data)
    }

    // 存在 children 时,进行迭代处理
    if (route.children) {
      // @ts-ignore
      const tempRoutes = generateRoutes(route.children, data.path, data.title)
      if (tempRoutes.length > 0) {
        res = [...res, ...tempRoutes]
      }
    }
  }
  return res
}
